166ae22911ddaf21e68561f18c6225259fed3273,src/main/java/org/basex/query/expr/GFLWOR.java,GFLWOR,compForLet,#QueryContext#,169

Before Change


        // stop if variable is shadowed or used by the current clause
        if(fl[g].shadows(t.var) || t.uses(fl[g].var)) break;
        // ignore let clauses and fragment constructors
        if(fl[g] instanceof Let || t.uses(Use.FRG)) continue;
        // stop if variable is used by as position or score
        final For fr = (For) fl[g];
        if(fr.pos != null && t.uses(fr.pos) ||

After Change


    for(int f = fl.length - 1; f >= 0; --f) {
      ForLet t = fl[f];
      // ignore for clauses, context expressions and constructors
      if(t instanceof For || t.uses(Use.CTX) || t.uses(Use.CNS)) continue;
      // loop through all outer clauses
      for(int g = f - 1; g >= 0; --g) {
        // stop if variable is shadowed or used by the current clause